package cn.le.exception;

/**
 * Created by admin on 2017/4/26.
 *
 * 1.当覆盖方法的时候,只能抛出在基类方法的异常说明里列出的那些异常,不可以不在基类的异常说明列表中
 * 2.异常限制对构造器不起作用,派生类的构造器的异常说明必须不少于基类构造器的异常说明,且派生类的构造器不能捕获基类构造器抛出的异常
 * 3.不抛出性,派生类方法可以不抛出任何异常,即使它是基类所定义的异常
 * 4.尽管在继承中,编辑器对异常说明所强制要求,但是异常说明本身不是方法的一部分,方法时由方法名和参数类型组成的方法签名确定唯一性
 */
public class BaseException extends  Exception {

}

class Base {

    Base()throws BaseException{
        throw  new BaseException();
    }

    public void exc() throws NullPointerException{};

}
class Derived extends  Base{

    Derived()throws BaseException{
        super();
    }

    @Override
    public void exc() throws NullPointerException { //抛出Execption 会报错
        super.exc();
    }
}









